package cn.bouncyslime.dataStructures.linearList.linkedList;

import cn.bouncyslime.dataStructures.linearList.linkedList.entity.Node;
import lombok.extern.slf4j.Slf4j;

import java.util.Random;

/**
 * 链表的初始化操作
 * 作者：张一卓
 * 创建日期：2020/9/26
 */
@Slf4j
public class LinkedListInit {
    public static Node<Integer> integerInit(){
        int length = 5;
        Random random = new Random();
        // 增设头结点，之后就不用区别是否为第一个节点了
        Node<Integer> root = new Node<>();
        Node<Integer> temp = root;
        for (int i=0; i<length; i++){
            Node<Integer> node = new Node<>();
            node.setData(random.nextInt(100));
            temp.setNext(node);
            temp = temp.getNext();
//            if (i == 0){
//                root = node;
//                temp = root;
//            }else {
//                temp.setNext(node);
//                temp = node;
//            }
        }
        return root;
    }

    public static Node<Integer> intArrayInit(int[] array){
        Node<Integer> root = new Node<>();
        Node<Integer> temp = root;
        for (int i=0; i<array.length; i++){
            Node<Integer> node = new Node<>();
            node.setData(array[i]);
            temp.setNext(node);
            temp = temp.getNext();
//            if (i == 0){
//                root = node;
//                temp = root;
//            }else {
//                temp.setNext(node);
//                temp = node;
//            }
        }
        return root;
    }

    public static void main(String[] args) {
        Node<Integer> root = integerInit();
        LinkedListUtils.printLinkedList(root);
//        while (root != null){
//            log.debug(String.valueOf(root.getData()));
//            root = root.getNext();
//        }
        root = intArrayInit(new int[]{1, 3, 5, 2, 8, 10, 9});
        LinkedListUtils.printLinkedList(root);

    }
}
